Safe bounds check annotations
نویسندگان
چکیده
The Java programming language’s semantics require that out-of-bounds array accesses be caught at runtime. In general, this requires dynamic checks at the time the array element is accessed. Some of these checks can be eliminated statically during just-in-time (JIT) compilation, but the most precise analyses are too expensive to run in JIT compilers. This paper presents a framework in which thorough static range analyses can be used safely during the less-performance-critical compilation of Java source into machineindependent mobile code. In this framework, the static analysis results are used to derive proofs that certain linear inequality constraints hold. These linear constraints and their proofs are then added to the mobile code as annotations. The annotation framework is designed so that proofs can be verified efficiently. This allows the JIT compiler to safely eliminate array bounds checks during compilation without expensive runtime analysis. Experiments with a prototype system that can generate and verify these annotations, demonstrate that this framework is more precise than prior work and that verification is efficient.
منابع مشابه
Verifiable Range Analysis Annotations for Array Bounds Check Elimination
For performance reasons, it is desirable for Java just-in-time (JIT) compilers to statically identify array element accesses that can never cause an out of bounds exception, but the most precise analyses are too expensive to run in JIT compilers. We present verifiable annotations that can be added to Java programs to capture the results of range analyses as claimed linear inequalities and proof...
متن کاملFrom Trusted Annotations to Verified Knowledge
WCET analyzers commonly rely on user-provided annotations such as loop bounds, recursion depths, regionand program constants. This reliance on user-provided annotations has an important drawback. It introduces a Trusted Annotation Basis into WCET analysis without any guarantee that the user-provided annotations are safe, let alone sharp. Hence, safety and accuracy of a WCET analysis cannot be f...
متن کاملSafe, multiphase bounds check elimination in Java
As part of its type-safety regime, the Java semantics require precise exceptions at runtime when programs attempt out-of-bound array accesses. This paper describes a Java implementation that utilizes a multiphase approach to identifying safe array accesses. This approach reduces runtime overhead by spreading the out-of-bounds checking effort across three phases of compilation and execution: pro...
متن کاملAbstract Interpretation to Check Secure Information Flow in Programs with Input-Output Security Annotations
Interpretation to Check Secure Information Flow in Programs with Input-Output Security Annotations N. De Francesco L. Martini Dipartimento di Ingegneria dell’Informazione, Università di Pisa, Formal Aspects of Security and Trust, Newcastle upon Tyne, 18-19 July 2005 N. De Francesco, L. Martini AI to Check SIF in programs with I/O Security Annotations Preliminaries The Two Semantics Examples Sum...
متن کاملA Type-Safe Mobile-Code Representation Aimed at Supporting Dynamic Optimization At The Target Site
We introduce SafeTSA, a type-safe mobile code representation based on static single assignment form. We are developing SafeTSA as an alternative to the Java Virtual Machine, over which it has several advantages: (1) SafeTSA is better suited as input to optimizing dynamic code generators and allows CSE to be performed at the code producer's site. (2) SafeTSA provides incorruptible referential in...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Concurrency and Computation: Practice and Experience
دوره 21 شماره
صفحات -
تاریخ انتشار 2009